home *** CD-ROM | disk | FTP | other *** search
- Path: comma.rhein.de!serpens!not-for-mail
- From: mlelstv@serpens.rhein.de (Michael van Elst)
- Newsgroups: comp.sys.amiga.misc
- Subject: Re: OS features
- Date: 21 Jan 1996 14:44:46 +0100
- Organization: dis-
- Message-ID: <4dtg0e$1j7@serpens.rhein.de>
- References: <DLAA61.2us@inter.NL.net> <4dh2dm$jui@serpens.rhein.de> <1292.6592T166T2158@algonet.se> <4do01q$fmc@serpens.rhein.de> <19960120.7B57BE0.122A3@asd01-04.dial.xs4all.nl>
- NNTP-Posting-Host: serpens.rhein.de
-
- jtv@xs4all.nl (Jeroen T. Vermeulen) writes:
-
- >I think it's because Forbid()/Permit() is still used in a lot of places where
- >the OS should have defined a separate semaphore (and probably implemented
- >deadlock detection and resolution as well). So this memory is *more likely* to
- >page-fault during Forbid().
-
- Actually the problem is that the flag MEMF_PUBLIC was never used for
- anything and wasn't thought out well.
-
- >[1] implement a special driver for the swap device as a single-threaded library,
- >more or less like other OS's do (boo!), or
-
- Which can't be single-threaded because the disk driver can use arbitrary
- tasks. That's no BIOS.
-
- >[2] make a radical change: Design around the problem for the new PPC OS so the
- >problem is limited to the 68k emulator (compatibility vs VM/MP--past vs future!)
-
- The radical change is that software has to declare wether data has to
- be locked in memory and it has to declare who will get access to the
- data.
-
- Of course there will be unprotected memory, heuristics for old programs
- (like the VMM database) and automatisms that let shared libraries handle
- private data without special preparations.
-
- >The easiest change would perhaps be, to have multiple public-memory pools for
- >different groups of communicating processes,
-
- Right.
-
- >each guarded by a semaphore, and
- >change the meaning of the current Forbid() calls to "Obtain non-shared (write)
- >access to all virtual public memory spaces accessible to me".
-
- This unfortunately does not work. But Forbid() isn't really useful
- either in most situations. New programs really must use other
- arbitration mechanisms. That's another reason why I want Forbid()
- and Disable() to be trapped. A multiprocessor configuration will
- then be the end of the "traditional" use of Forbid().
-
-
- --
- Michael van Elst
-
- Internet: mlelstv@serpens.rhein.de
- "A potential Snark may lurk in every tree."
-